/**
 * 对用户的session进行管理
 *
 * @author bian
 * @createDate 2018.3.1
 */


var util = require("util");
var cache = require("../lib/cache.js")("fingerprint");
var db = require("../models/index");
const Admin = db.models.Admin;
module.exports = {


    /**
     * 根据LoginToken验证用户
     * @param ctx
     * @returns {*}
     */
    adminer : function*(ctx) {
        var LoginToken = ctx.cookies.get("LoginToken");
        if(util.isNullOrUndefined(LoginToken)) return null;
        return cache.jget(LoginToken).then((adminer) => {
            if(adminer) {
                return Admin.find({
                    where:{
                        id: adminer.id
                    }
                });
            }
            return null;
        });
    },

    /**
     * 根据LoginToken 登录用户记录用户session
     * @param ctx
     * @param LoginToken
     * @param user
     */
    login : function*(ctx,LoginToken,user){
        yield cache.jsetex(LoginToken,5 * 60 * 60,user);   // 设置五小时后失效
        ctx.cookies.set("LoginToken",LoginToken);
    }
};